package xin.zhiyin.控制.system.系统;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import xin.zhiyin.实体.系统管理员Entity;
import xin.zhiyin.服务.系统管理员Service;

import java.util.Optional;

@Controller
@RequestMapping(path = "/system/manager")
public class 管理员Controller {
    @Autowired
    private 系统管理员Service 管理员Service;

/*GET 请求是用来获取资源的，也就是进行查询操作的，而 POST 是用来传递实体的。
所以在我们开发中对于获取一般常用GET请求，而对于数据的增添、删除、修改，一般都使用POST请求进行操作。
还有一点，他们两者之间的参数传递也是不同的。GET 请求是将参数拼接到 URL 上进行参数传递的，
而 POST 是将参数写入到请求正文中传递的。*/
    @RequestMapping (path = "/add" ,method = RequestMethod.POST)
    public void 新增系统管理员(@RequestParam String loginName,
                            @RequestParam String loginPassword,
                            @RequestParam String email,
                            @RequestParam String phoneNumber,
                            @RequestParam String headPictrue
    )
    {
        系统管理员Entity m = new 系统管理员Entity ();
        m.setLoginName(loginName);
        m.setLoginPassword(loginPassword);
        m.setEmail(email);
        m.setPhoneNumber(phoneNumber);
        m.setHeadPictrue(headPictrue);
        管理员Service.新增系统管理员(m);
    }
    /*查找所有系统管理员*/
    @GetMapping(path = "/all")
    @ResponseBody
    public Iterable<系统管理员Entity> 获取所有系统管理员()
    {
        return 管理员Service.获取所有系统管理员();
    }
    /*根据id查找系统管理员*/
    @GetMapping(path = "/find_by_id")
    @ResponseBody
    public Optional<系统管理员Entity> 根据id查询系统管理员(@RequestParam Long id)
    {
        return 管理员Service.根据id查询系统管理员(id);
    }
    /*根据id删除管理员*/
    @GetMapping(path = "delete_by_id")
    public void 根据id删除系统管理员(@RequestParam Long id)
    {
        管理员Service.根据id删除系统管理员(id);
    }
    /*验证排序和分页查询方法*/
    @GetMapping(path = "/page")
    @ResponseBody
    public Page<系统管理员Entity> String字段排序和分页查询(String 字段)
    {
        return 管理员Service.String字段排序和分页查询(字段);
    }
}
